home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / utilsys / rss14gmd.lha / RSys_1.4gmd / C / Init.c < prev    next >
C/C++ Source or Header  |  1996-05-04  |  19KB  |  618 lines

  1. /*
  2.    ***************************************************************************
  3.    *
  4.    * Datei:
  5.    *      RSysInit.c
  6.    *
  7.    * Inhalt:
  8.    *
  9.    *      --- Globale Routinen ---
  10.    *
  11.    *    int OpenSysWindow ( void );
  12.    *    long CreateMainGadgets ( void );
  13.    *    void ResizeWindowRefresh ( void );
  14.    *
  15.    *      --- Lokale  Routinen ---
  16.    *
  17.    *    static void AdjustLVLines ( void );
  18.    *    static void ReCalcLVHeight ( SCREEN *Scr );
  19.    *
  20.    * Bemerkungen:
  21.    *      Initialisierung des Hauptfensters von RSys.
  22.    *
  23.    * Erstellungsdatum:
  24.    *      07-Jul-93     Rolf Böhme
  25.    *
  26.    * Änderungen:
  27.    *      07-Jul-93     Rolf Böhme        Erstellung
  28.    *
  29.    ***************************************************************************
  30.  */
  31.  
  32. #include "RSys.h"
  33. #include "protos.h"
  34.  
  35. static UWORD SysGTypes[] =
  36. {
  37.   BUTTON_KIND,
  38.   BUTTON_KIND,
  39.   BUTTON_KIND,
  40.   BUTTON_KIND,
  41.   BUTTON_KIND,
  42.   BUTTON_KIND,
  43.   BUTTON_KIND,
  44.   BUTTON_KIND,
  45.   BUTTON_KIND,
  46.   BUTTON_KIND,
  47.   BUTTON_KIND,
  48.   BUTTON_KIND,
  49.   BUTTON_KIND,
  50.   BUTTON_KIND,
  51.   BUTTON_KIND,
  52.   BUTTON_KIND,
  53.   LISTVIEW_KIND,
  54.   TEXT_KIND,
  55.   TEXT_KIND,
  56.   BUTTON_KIND
  57. };
  58.  
  59. static int tops[20] =
  60. {
  61.   117, 117, 117, 117,
  62.   131, 131, 131, 131,
  63.   145, 145, 145, 145,
  64.   159, 159, 159, 159,
  65.   16,
  66.   2,
  67.   102, 102
  68. };
  69.  
  70.  
  71. static NEWGADGET SysNGad[] =
  72. {
  73.   {5, 117, 93 + NEWLEN, 12, (UBYTE *) "_Tasks", NULL, GD_TasksGad, PLACETEXT_IN, NULL, NULL},
  74.   {125, 117, 93 + NEWLEN, 12, (UBYTE *) "_Libraries", NULL, GD_LibrariesGad, PLACETEXT_IN, NULL, NULL},
  75.   {245, 117, 93 + NEWLEN, 12, (UBYTE *) "_Memory", NULL, GD_MemoryGad, PLACETEXT_IN, NULL, NULL},
  76.   {365, 117, 93 + NEWLEN, 12, (UBYTE *) "_Ports", NULL, GD_PortsGad, PLACETEXT_IN, NULL, NULL},
  77.  
  78.   {5, 131, 93 + NEWLEN, 12, (UBYTE *) "_Volumes", NULL, GD_VolumesGad, PLACETEXT_IN, NULL, NULL},
  79.   {125, 131, 93 + NEWLEN, 12, (UBYTE *) "_Assigns", NULL, GD_AssignsGad, PLACETEXT_IN, NULL, NULL},
  80.   {245, 131, 93 + NEWLEN, 12, (UBYTE *) "_Fonts", NULL, GD_FontsGad, PLACETEXT_IN, NULL, NULL},
  81.   {365, 131, 93 + NEWLEN, 12, (UBYTE *) "_Resources", NULL, GD_ResourcesGad, PLACETEXT_IN, NULL, NULL},
  82.  
  83.   {5, 145, 93 + NEWLEN, 12, (UBYTE *) "_Interrupts", NULL, GD_InterruptsGad, PLACETEXT_IN, NULL, NULL},
  84.   {125, 145, 93 + NEWLEN, 12, (UBYTE *) "_Windows", NULL, GD_WindowsGad, PLACETEXT_IN, NULL, NULL},
  85.   {245, 145, 93 + NEWLEN, 12, (UBYTE *) "_Screens", NULL, GD_ScreensGad, PLACETEXT_IN, NULL, NULL},
  86.   {365, 145, 93 + NEWLEN, 12, (UBYTE *) "_HandlerInp", NULL, GD_HandlerInpGad, PLACETEXT_IN, NULL, NULL},
  87.  
  88.   {5, 159, 93 + NEWLEN, 12, (UBYTE *) "S_ystem", NULL, GD_SystemGad, PLACETEXT_IN, NULL, NULL},
  89.   {125, 159, 93 + NEWLEN, 12, (UBYTE *) "Har_dware", NULL, GD_HardwareGad, PLACETEXT_IN, NULL, NULL},
  90.   {245, 159, 93 + NEWLEN, 12, (UBYTE *) "Save List", NULL, GD_SaveListGad, PLACETEXT_IN, NULL, NULL},
  91.   {365, 159, 93 + NEWLEN, 12, (UBYTE *) "_Jump", NULL, GD_JumpGad, PLACETEXT_IN, NULL, NULL},
  92.  
  93.   {5, 16, 477, 85, (UBYTE *) NULL, NULL, GD_ListeLV, 0, NULL, NULL},
  94.  
  95.   {5, 2, 477, 12, (UBYTE *) NULL, NULL, GD_TextHeader, 0, NULL, NULL},
  96.  
  97.   {5, 102, 438, 13, (UBYTE *) NULL, NULL, GD_InfoMsgGad, 0, NULL, NULL},
  98.  
  99.   {446, 102, 35, 13, (UBYTE *) "_New", NULL, GD_NewGad, PLACETEXT_IN, NULL, NULL}
  100. };
  101.  
  102.  
  103. static const ULONG *SysGTags[] =
  104. {
  105.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  106.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  107.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  108.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  109.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  110.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  111.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  112.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  113.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  114.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  115.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  116.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  117.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  118.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  119.   (ULONG *) (TAG_DONE),
  120.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  121.  
  122.   (ULONG *) (GTLV_Labels), (ULONG *) & ListeLVList, (ULONG *) (TAG_DONE),
  123.   (ULONG *) (GTTX_Text), (ULONG *) NULL, (ULONG *) (GTTX_Border), (ULONG *) TRUE, (ULONG *) (TAG_DONE),
  124.   (ULONG *) (GTTX_Text), (ULONG *) NULL, (ULONG *) (GTTX_Border), (ULONG *) TRUE, (ULONG *) (TAG_DONE),
  125.   (ULONG *) (GT_Underscore), (ULONG *) '_', (ULONG *) (TAG_DONE),
  126. };
  127.  
  128. /* -----------------------------------------------------------
  129.    LIBRARY *KeymapBase = NULL;
  130.    void
  131.    test(void)
  132.    {
  133.    int a = 1, b = 0;
  134.  
  135.    a = a / b;
  136.  
  137.    /*   MapANSI((STRPTR)"huhu",4L,(STRPTR)"huhu",4L, NULL);
  138.  
  139.    }
  140.    /* ----------------------------------------------------------- */
  141.  
  142.  
  143. NEWMENU SysNewMenu[] =
  144. {
  145.    /* 00 */
  146.   {NM_TITLE, (UBYTE *) "Project", NULL, 0, 0, NULL,},
  147.  
  148.   /* 01 */
  149.   {NM_ITEM, (UBYTE *) "Iconify, <ESC>", (UBYTE *) "I", 0, 0, Iconify,},
  150.   /* 02 */
  151.   {NM_ITEM, (UBYTE *) "Help", (UBYTE *) "H", CHECKIT | MENUTOGGLE, 0, Help,},
  152.   /* 03 */
  153.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  154.   /* 04 */
  155.   {NM_ITEM, (UBYTE *) "Status", NULL, 0, 0, ShowStatus,},
  156.   /* 05 */
  157.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  158.   /* 06 */
  159.   {NM_ITEM, (UBYTE *) "Save Configuration", NULL, 0, 0, SaveConfig,},
  160.   /* 07 */
  161.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  162.   /* 08 */
  163.   {NM_ITEM, (UBYTE *) "About...", (UBYTE *) "A", 0, 0, About,},
  164.   /* 09 */
  165.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  166.   /* 10 */
  167.   {NM_ITEM, (UBYTE *) "Quit " NAME "...", (UBYTE *) "Q", 0, 0, quit,},
  168.  
  169.  
  170.   /* 11 */
  171.   {NM_TITLE, (UBYTE *) "Other Lists", NULL, 0, 0, NULL,},
  172.  
  173.   /* 12 */
  174.   {NM_ITEM, (UBYTE *) "Exec", NULL, 0, 0, NULL,},
  175.  
  176.   /* 13 */
  177.   {NM_SUB, (UBYTE *) "Software Devices", (STRPTR) "1", 0, 0, SysSoftDeviceList,},
  178.   /* 14 */
  179.   {NM_SUB, (UBYTE *) "Vectors", (STRPTR) "2", 0, 0, SysVectorList,},
  180.   /* 15 */
  181.   {NM_SUB, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  182.   /* 16 */
  183.   {NM_SUB, (UBYTE *) "CLI processes", NULL, 0, 0, SysCLIList,},
  184.   /* 17 */
  185.   {NM_SUB, (UBYTE *) "Semaphores", NULL, 0, 0, SysSemaphoreList,},
  186.   /* 18 */
  187.   {NM_SUB, (UBYTE *) "Memory areas", NULL, 0, 0, RSysMemoryAreaList,},
  188.  
  189.   /* 19 */
  190.   {NM_ITEM, (UBYTE *) "DOS", NULL, 0, 0, NULL,},
  191.  
  192.   /* 20 */
  193.   {NM_SUB, (UBYTE *) "Volume locks", (STRPTR) "3", 0, 0, RSysLockList,},
  194.   /* 21 */
  195.   {NM_SUB, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  196.   /* 22 */
  197.   {NM_SUB, (UBYTE *) "Resident programs", NULL, 0, 0, SysResidentProg,},
  198.   /* 23 */
  199.   {NM_SUB, (UBYTE *) "Physical Devices", NULL, 0, 0, SysResidentList,},
  200.   /* 24 */
  201.   {NM_SUB, (UBYTE *) "Fault messages", NULL, 0, 0, RSysFaultMessages,},
  202.  
  203.   /* 25 */
  204.   {NM_ITEM, (UBYTE *) "Graphics", NULL, 0, 0, NULL,},
  205.  
  206.   /* 26 */
  207.   {NM_SUB, (UBYTE *) "Display modes", (STRPTR) "4", 0, 0, RSysGetDisplayModes,},
  208.   /* 27 */
  209.   {NM_SUB, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  210.   /* 28 */
  211.   {NM_SUB, (UBYTE *) "Blitter Wait Queue", NULL, 0, 0, SysBlitterWaitList,},
  212.   /* 29 */
  213.   {NM_SUB, (UBYTE *) "TOF Wait Queue", NULL, 0, 0, SysTOFWaitList,},
  214.  
  215.   /* 30 */
  216.   {NM_ITEM, (UBYTE *) "Diskfont", NULL, 0, 0, NULL,},
  217.  
  218.   /* 31 */
  219.   {NM_SUB, (UBYTE *) "Fonts in FONTS:", (STRPTR) "5", 0, 0, SysAvailFontsList,},
  220.  
  221.   /* 32 */
  222.   {NM_ITEM, (UBYTE *) "Intuition", NULL, 0, 0, NULL,},
  223.  
  224.   /* 33 */
  225. {NM_SUB, (UBYTE *) "Public Screens", (STRPTR) "6", 0, 0, SysPubScreenList,},
  226.   /* 34 */
  227.   {NM_SUB, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  228.   /* 35 */
  229.   {NM_SUB, (UBYTE *) "Gadgets", NULL, 0, 0, RSysGadgetList,},
  230.  
  231.   /* 36 */
  232.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  233.  
  234.   /* 37 */
  235.   {NM_ITEM, (UBYTE *) "Preferences", NULL, 0, 0, NULL,},
  236.  
  237.   /* 38 */
  238.   {NM_SUB, (UBYTE *) "Preferences Data", (STRPTR) "7", 0, 0, SysPrefList,},
  239.   /* 39 */
  240.   {NM_SUB, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  241.   /* 40 */
  242.   {NM_SUB, (UBYTE *) "Printer data", NULL, 0, 0, SysExtPrinterData,},
  243.   /* 41 */
  244.   {NM_SUB, (UBYTE *) "ENV-Variables", NULL, 0, 0, SysEnvList,},
  245.  
  246.   /* 42 */
  247.   {NM_ITEM, (UBYTE *) "Other libraries", NULL, 0, 0, NULL,},
  248.  
  249.   /* 43 */
  250.   {NM_SUB, (UBYTE *) "Commodities", (STRPTR) "8", 0, 0, SysBrokerList,},
  251.   /* 44 */
  252.   {NM_SUB, (UBYTE *) "Amigaguide XRef", (STRPTR) "9", 0, 0, RSysAmigaGuideRefList,},
  253.  
  254.  
  255.   /* 45 */
  256.   {NM_TITLE, (UBYTE *) "Actions", NULL, 0, 0, NULL,},
  257.  
  258.   /* 46 */
  259.   {NM_ITEM, (UBYTE *) "CRC Check...", NULL, 0, 0, CRCSum,},
  260.   /* 47 */
  261.   {NM_ITEM, (UBYTE *) "Crypt File...", NULL, 0, 0, CryptFile,},
  262.   /* 48 */
  263.   {NM_ITEM, (UBYTE *) "List Hunks...", NULL, 0, 0, HunkStruct,},
  264.   /* 49 */
  265.   {NM_ITEM, (UBYTE *) "Find File...", NULL, 0, 0, FindFile,},
  266.   /* 50 */
  267.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  268.   /* 51 */
  269.   {NM_ITEM, (UBYTE *) "Format Disk...", NULL, 0, 0, FormatDisk,},
  270.   /* 52 */
  271.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  272.   /* 53 */
  273.   {NM_ITEM, (UBYTE *) "Save windows...", NULL, 0, 0, SaveWindows,},
  274.   /* 54 */
  275.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  276.   /* 55 */
  277.   {NM_ITEM, (UBYTE *) "Check Libraries", NULL, 0, 0, SysCheckOffs,},
  278.  
  279.  
  280.   /* 56 */
  281.   {NM_TITLE, (UBYTE *) "Internal List", NULL, 0, 0, NULL,},
  282.  
  283.   /* 57 */
  284.   {NM_ITEM, (UBYTE *) "Save current list", (UBYTE *) "L", 0, 0, SaveCurrentList,},
  285.   /* 58 */
  286. {NM_ITEM, (UBYTE *) "Restore saved list", (UBYTE *) "R", 0, 0, RestoreList,},
  287.   /* 59 */
  288.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  289.   /* 60 */
  290.   {NM_ITEM, (UBYTE *) "Kill saved list", NULL, 0, 0, KillList,},
  291.  
  292.  
  293.   /* 61 */
  294.   {NM_TITLE, (UBYTE *) "Flushing", NULL, 0, 0, NULL,},
  295.  
  296.   /* 62 */
  297.   {NM_ITEM, (UBYTE *) "Flush Libraries", NULL, 0, 0, RSysFlushAllLibraries,},
  298.   /* 63 */
  299.   {NM_ITEM, (UBYTE *) "Flush Fonts", NULL, 0, 0, RSysFlushAllFonts,},
  300.  
  301. /*GMD */
  302.   {NM_ITEM, (UBYTE *) "Flush Devices", NULL, 0, 0, RSysFlushAllDevices,},
  303.   /* 64 */
  304.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  305.   /* 65 */
  306.  
  307.   {NM_ITEM, (UBYTE *) "Flush All", NULL, 0, 0, RSysFlushAll,},
  308. /**/
  309.  
  310.   /* 66 */
  311.   {NM_TITLE, (UBYTE *) "Clip", NULL, 0, 0, NULL,},
  312.  
  313.   /* 67 */
  314. {NM_ITEM, (UBYTE *) "Clip entry...", (UBYTE *) "C", 0, 0, RSysEntryToClip,},
  315.   /* 68 */
  316.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  317.   /* 69 */
  318.   {NM_ITEM, (UBYTE *) "Clip list", NULL, 0, 0, RSysListToClip,},
  319.  
  320.  
  321.   /* 70 */
  322.   {NM_TITLE, (UBYTE *) "Flags", NULL, 0, 0, NULL,},
  323.  
  324.   /* 71 */
  325.   {NM_ITEM, (UBYTE *) "Fast Mode", (UBYTE *) "F", CHECKIT | CHECKED | MENUTOGGLE, 0, ToggleFastMode,},
  326.   /* 72 */
  327.   {NM_ITEM, (UBYTE *) "Sorting", (UBYTE *) "O", CHECKIT | CHECKED | MENUTOGGLE, 0, ToggleSortMode,},
  328.   /* 73 */
  329.   {NM_ITEM, (UBYTE *) "Working bar", (UBYTE *) "B", CHECKIT | MENUTOGGLE, 0, ToggleWorkingBar,},
  330.   /* 74 */
  331.   {NM_ITEM, (UBYTE *) "Auto front window", (UBYTE *) "Z", CHECKIT | MENUTOGGLE, 0, ToggleAutoFront,},
  332.   /* 75 */
  333.   {NM_ITEM, (UBYTE *) "Mouse window", (UBYTE *) "M", CHECKIT | MENUTOGGLE, 0, ToggleMouseWindow,},
  334.   /* 76 */
  335.   {NM_ITEM, (UBYTE *) "Topaz Font", (UBYTE *) "T", CHECKIT | MENUTOGGLE, 0, ToggleTopazFont,},
  336.   /* 77 */
  337.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  338.   /* 78 */
  339.   {NM_ITEM, (UBYTE *) "Speaking", NULL, CHECKIT | MENUTOGGLE, 0, ToggleSpeakMode,},
  340.   /* 79 */
  341.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  342.   /* 80 */
  343.   {NM_ITEM, (UBYTE *) "Save asking", NULL, CHECKIT | CHECKED | MENUTOGGLE, 0, ToggleAskingMode,},
  344.   /* 81 */
  345.   {NM_ITEM, (UBYTE *) "Text formatter", NULL, CHECKIT | CHECKED | MENUTOGGLE, 0, ToggleTextFormatter,},
  346.  
  347.  
  348.   /* 82 */
  349.   {NM_TITLE, (UBYTE *) "Ext. Data", NULL, 0, 0, NULL,},
  350.  
  351.   /* 83 */
  352.   {NM_ITEM, (UBYTE *) "Reload action file...", 0, 0, 0, BuildActionList,},
  353.   /* 84 */
  354. {NM_ITEM, (UBYTE *) "Reload hardware datas...", 0, 0, 0, BuildHardwareList,},
  355.   /* 85 */
  356.   {NM_ITEM, (UBYTE *) "Reload library offsets...", 0, 0, 0, BuildLibOffsetList,},
  357.   /* 86 */
  358.   {NM_ITEM, (UBYTE *) "Reload AGuide context nodes...", 0, 0, 0, BuildHelpList,},
  359.  
  360.   /* 87 */
  361.   {NM_TITLE, (UBYTE *) "Search", NULL, 0, 0, NULL,},
  362.  
  363.   /* 88 */
  364.   {NM_ITEM, (UBYTE *) "Find next", (UBYTE *) "N", 0, 0, RSysFindNext,},
  365.   /* 89 */
  366.   {NM_ITEM, (UBYTE *) "Find previous", (UBYTE *) "P", 0, 0, RSysFindPrev,},
  367.   /* 90 */
  368.   {NM_ITEM, (UBYTE *) NM_BARLABEL, NULL, 0, NULL, NULL,},
  369.   /* 91 */
  370.   {NM_ITEM, (UBYTE *) "Search string...", (UBYTE *) "S", 0, 0, RSysSearch,},
  371.  
  372. /* -----------------------------------------------------------
  373.    {NM_TITLE, (UBYTE *) "Log File",          NULL, 0, 0, NULL,},
  374.  
  375.    {NM_ITEM, (UBYTE *) "Open Log file",      NULL, 0, 0, OpenErrorLogFile,},
  376.    {NM_ITEM, (UBYTE *) "Close Log File",     NULL, 0, 0, CloseErrorLogFile,},
  377.  
  378.    {NM_ITEM, (UBYTE *) NM_BARLABEL,                     NULL, 0, NULL, NULL,},
  379.    {NM_ITEM, (UBYTE *) "Trap handler test (for betas only!)",                   NULL, 0, NULL, test},
  380.    /* ----------------------------------------------------------- */
  381.  
  382.   /* 71 */
  383.   {NM_END, NULL, NULL, 0, NULL, NULL}
  384. };
  385.  
  386.  
  387. static void
  388. ReCalcLVHeight (SCREEN * Scr)
  389. {
  390.   int i = 0;
  391.  
  392.   newlvh = ((SysWnd->Height - (SysWnd->BorderBottom + SysWnd->BorderTop + 3) -
  393.          ComputeY ((UWORD) (WndH - LVH))) / FontY) + 1;
  394.  
  395.   for (i = 0; i <= Sys_CNT; i++)
  396.     if (i <= 15 || i == 18 || i == 19)
  397.       SysNGad[i].ng_TopEdge = tops[i] + (newlvh - 10) * 8;
  398.  
  399.   SysNGad[16].ng_Height = LVH + (newlvh - 10) * 8;
  400.  
  401.   return;
  402. }
  403.  
  404. long
  405. CreateMainGadgets (void)
  406. {
  407.   GADGET *g;
  408.   NEWGADGET ng;
  409.   UWORD lc, tc;
  410.  
  411.   if (NOT (g = CreateContext (&SysGList)))
  412.     return 1L;
  413.  
  414.   SysGTags[50] = (ULONG *) & EntryAttr[LastID].ea_header[0];
  415.  
  416.   for (lc = 0, tc = 0; lc <= Sys_CNT; lc++)
  417.     {
  418.       CopyMem (&SysNGad[lc], &ng, sizeof (NEWGADGET));
  419.  
  420.       ng.ng_VisualInfo = VisualInfo;
  421.       ng.ng_TextAttr = Font;
  422.       ng.ng_LeftEdge = OffX + ComputeX (ng.ng_LeftEdge);
  423.       ng.ng_TopEdge = OffY + ComputeY (ng.ng_TopEdge);
  424.       ng.ng_Width = ComputeX (ng.ng_Width);
  425.       ng.ng_Height = ComputeY (ng.ng_Height);
  426.  
  427.       SysGadgets[lc] = g = CreateGadgetA ((ULONG) SysGTypes[lc], g, &ng, (TAGITEM *) & SysGTags[tc]);
  428.  
  429.       while (SysGTags[tc])
  430.     tc += 2;
  431.  
  432.       tc++;
  433.  
  434.       if (NOT g)
  435.     return 2L;
  436.     }
  437.  
  438.   return 0L;
  439. }
  440.  
  441.  
  442. void
  443. ResizeWindowRefresh (void)
  444. {
  445.  
  446.   InitListView (SysWnd, SysGadgets[GD_ListeLV], NULL, 0);
  447.  
  448.   RemoveGList (SysWnd, SysGList, (-1));
  449.  
  450.   if (SysGList)
  451.     {
  452.       FreeGadgets (SysGList);
  453.       SysGList = NULL;
  454.     }
  455.  
  456.   ReCalcLVHeight (Scr);
  457.  
  458.   if (CreateMainGadgets ())
  459.     ErrorHandle ("CreateMainGadgets()", GADGET_ERR, CREATE_FAIL, KILL);
  460.  
  461.   AddGList (SysWnd, SysGList, -1, (-1), NULL);
  462.  
  463.   MakePattern (SysWnd);
  464.  
  465.   RefreshMainWindowPattern ();
  466.  
  467.   RefreshListView ();
  468.  
  469.   PrintStatistics ();
  470.  
  471.   ClearIntuiMsgPort (SysWnd);
  472.  
  473.   SysHeight = FULL * (SysWnd->Height - OffY - Scr->WBorBottom) / (FRAC * FontY);
  474.  
  475.   return;
  476. }
  477.  
  478. static void
  479. AdjustLVLines (void)
  480. {
  481.   ComputeFont (Scr, (UWORD) 0, (UWORD) 0);
  482.  
  483.   if ((ComputeY (SysHeight) + OffY + Scr->WBorBottom) > Scr->Height)
  484.     do
  485.       {
  486.     newlvh--;
  487.     SysHeight -= 8;
  488.       }
  489.     while (newlvh > 3 &&
  490.        (ComputeY (SysHeight) + OffY + Scr->WBorBottom) > Scr->Height);
  491.  
  492.   return;
  493. }
  494.  
  495.  /*
  496.   * OpenSysWindow() öffnet das Hauptfenster von RSys
  497.   */
  498. int
  499. OpenSysWindow (void)
  500. {
  501.   UWORD wleft = SysLeft, wtop = SysTop, ww, wh, smh;
  502.   long gads_not_ok;
  503.   int gl[] =
  504.   {GD_ListeLV, GD_TextHeader, GD_InfoMsgGad};
  505.  
  506.   DPOS;
  507.  
  508.   AdjustLVLines ();
  509.  
  510.   AdjustWindowDimensions (Scr, SysLeft, SysTop, SysWidth, SysHeight,
  511.               &wleft, &wtop, &ww, &wh);
  512.  
  513.   smh = compute ((UWORD) 0, FontY, (int) SysMinH);
  514.   smh = compute ((UWORD) (OffY + Scr->WBorBottom), FontY, (int) SysMinH);
  515.  
  516.   SysNewMenu[2].nm_Flags = (Flags.helpmode ? (CHECKIT | CHECKED | MENUTOGGLE) :
  517.                 (CHECKIT | MENUTOGGLE));
  518. #define FFLAG 71
  519.  
  520.   SysNewMenu[FFLAG].nm_Flags = (Flags.fastmode ? (CHECKIT | CHECKED | MENUTOGGLE) :
  521.                 (CHECKIT | MENUTOGGLE));
  522.   SysNewMenu[FFLAG + 1].nm_Flags = (Flags.sortmode ? (CHECKIT | CHECKED | MENUTOGGLE) :
  523.                     (CHECKIT | MENUTOGGLE));
  524.   SysNewMenu[FFLAG + 2].nm_Flags = (Flags.workingbar ? (CHECKIT | CHECKED | MENUTOGGLE) :
  525.                     (CHECKIT | MENUTOGGLE));
  526.   SysNewMenu[FFLAG + 3].nm_Flags = (Flags.autofront ? (CHECKIT | CHECKED | MENUTOGGLE) :
  527.                     (CHECKIT | MENUTOGGLE));
  528.   SysNewMenu[FFLAG + 4].nm_Flags = (Flags.mousewindow ? (CHECKIT | CHECKED | MENUTOGGLE) :
  529.                     (CHECKIT | MENUTOGGLE));
  530.   SysNewMenu[FFLAG + 5].nm_Flags = (Flags.sysfont ? (CHECKIT | CHECKED | MENUTOGGLE) :
  531.                     (CHECKIT | MENUTOGGLE));
  532.   SysNewMenu[FFLAG + 7].nm_Flags = (Flags.speakmode ? (CHECKIT | CHECKED | MENUTOGGLE) :
  533.                     (CHECKIT | MENUTOGGLE));
  534.   SysNewMenu[FFLAG + 9].nm_Flags = (Flags.saveasking ? (CHECKIT | CHECKED | MENUTOGGLE) :
  535.                     (CHECKIT | MENUTOGGLE));
  536.   SysNewMenu[FFLAG + 10].nm_Flags = (Flags.textformat ? (CHECKIT | CHECKED | MENUTOGGLE) :
  537.                      (CHECKIT | MENUTOGGLE));
  538.  
  539.   if (NOT (SysMenus = CreateMenus (SysNewMenu, GTMN_FrontPen, menudetail, TAG_DONE)))
  540.     return 3L;
  541.  
  542.   LayoutMenus (SysMenus, VisualInfo, GTMN_NewLookMenus, TRUE, GTMN_TextAttr, Font, TAG_DONE);
  543.  
  544.   SysZoom[0] = 300;
  545.   SysZoom[1] = 0;
  546.   SysZoom[2] = compute ((UWORD) (OffX + Scr->WBorRight), FontX, 158);
  547.   SysZoom[3] = OffY;
  548.  
  549.   if (NOT (SysWnd = OpenWindowTags (NULL,
  550.                     WA_Left, wleft,
  551.                     WA_Top, wtop,
  552.                     WA_Width, ww,
  553.                     WA_MinWidth, ww,
  554.                     WA_MaxWidth, ww,
  555.                     WA_Height, wh,
  556.                     WA_MinHeight, smh,
  557.                     WA_MaxHeight, -1,
  558.                     WA_DetailPen, winddetail,
  559.                     WA_BlockPen, windblock,
  560.                     WA_IDCMP, BUTTONIDCMP |
  561.                     LISTVIEWIDCMP |
  562.                     IDCMP_MOUSEBUTTONS |
  563.                     IDCMP_MOUSEMOVE |
  564.                     IDCMP_CLOSEWINDOW |
  565.                     IDCMP_ACTIVEWINDOW |
  566.                     IDCMP_INACTIVEWINDOW |
  567.                     IDCMP_SIZEVERIFY |
  568.                     IDCMP_NEWSIZE |
  569.                     IDCMP_RAWKEY |
  570.                     IDCMP_VANILLAKEY |
  571.                     IDCMP_CHANGEWINDOW |
  572.                     IDCMP_DISKREMOVED |
  573.                     IDCMP_DISKINSERTED |
  574.                     IDCMP_MENUPICK,
  575.                     WA_DragBar, TRUE,
  576.                     WA_DepthGadget, TRUE,
  577.                     WA_CloseGadget, TRUE,
  578.                     WA_SmartRefresh, TRUE,
  579.                     WA_NoCareRefresh, TRUE,
  580.                     WA_SizeGadget, TRUE,
  581.                     WA_SizeBBottom, TRUE,
  582.                     WA_Zoom, SysZoom,
  583.                     WA_PubScreenName, (LONG) namebuffer,
  584.                     WA_PubScreenFallBack, TRUE,
  585.                     WA_PubScreen, Scr,
  586.                     WA_Title, SysWdt,
  587.                     WA_Dummy + 0x30, 1L,
  588.                     TAG_DONE)))
  589.     return 4L;
  590.  
  591.   SysZoom[0] = SysWnd->LeftEdge;
  592.   SysZoom[1] = SysWnd->TopEdge;
  593.   SysZoom[2] = SysWnd->Width;
  594.   SysZoom[3] = SysWnd->Height;
  595.  
  596.   SetMenuStrip (SysWnd, SysMenus);
  597.  
  598.   if (NOT (Flags.wb_start))
  599.     {
  600.       OffMenu (SysWnd, FULLMENUNUM (0, 0, 0));
  601.       OffMenu (SysWnd, FULLMENUNUM (0, 1, 0));
  602.       OffMenu (SysWnd, FULLMENUNUM (7, 0, 0));
  603.       OffMenu (SysWnd, FULLMENUNUM (7, 3, 0));
  604.     }
  605.  
  606.   if (Flags.nohelp)
  607.     OffMenu (SysWnd, FULLMENUNUM (0, 1, 0));
  608.  
  609.   ReCalcLVHeight (Scr);
  610.  
  611.   if (gads_not_ok = CreateMainGadgets ())
  612.     return gads_not_ok;
  613.  
  614.   RefreshRastPort (SysWnd, SysGadgets, gl, 3, FALSE, SysGList);
  615.  
  616.   return NULL;
  617. }
  618.